package main.java.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/*
    数组转换为List集合
    数组的工具类Arrays提供了一个静态方法asList，可以将一个数组转换为List集合
 */
public class ArrayToListDemo {
    public static void main(String[] args) {
        // 定义一个数组
        String[] array = {"one","two","three","four","five"};
        //输出数组的集合
        System.out.println("array"+ Arrays.toString(array));
        //将数组转化为List集合
        List<String> list = Arrays.asList(array);
        //输出List集合
        System.out.println("list:"+list);

        //对集合操作就是对原数组的操作
        //在起始位置修改第一个元素为six
        list.set(0, "six");
        //数组也发生了变化
        //输出修改后的集合
        System.out.println("list:"+list);
        //输出原数组
        System.out.println("array:"+Arrays.toString(array));
        System.out.println("===================================");

        /*
        会出现Unsupported Operation Exception：不支持操作异常
        影响数组长度的操作对于该集合而言都是不支持的操作
        //添加一个元素
        list.add("seven");
        //输出修改后的集合
        System.out.println("list:"+list);
        //输出原数组
        System.out.println("array:"+Arrays.toString(array));
         */

        //如果希望增删元素，需要自行创建一个集合，包含原集合所有元素
        //List<String> list2 = Arrays.asList(array);
        //list2.addAll(list);
        System.out.println("=====================================");
        //所有集合都提供了一个参数为collection的构造器，创建当前集合同时包含给定集合所有元素
        //创建一个集合
        List<String> list3 = new ArrayList<>(list);
        //添加一个元素seven
        list3.add("seven");
        //输出集合
        System.out.println("list3:"+list3);
    }
}
